package leetcode_400;

/**
 *@author 周杨
 *NthDigit_400 给定一个数字  判断1-n出现的是0-9哪个数字(1位称作一个数字)
 *describe:
1~9  1位  9个数(9-1+1)， 1*9 digit
10~99  2位  90个数(99-10+1)， 2*90 digit
100~999 3位  900个数(999-100+1),  3*900 digit
先确定区间 再找这个数的位置 AC 100%
 *2018年7月17日 上午9:29:07
 */
public class NthDigit_400 {
	 public int findNthDigit(int n) {
		 if(n <=0) return 0;
	        long count = 9;
	     int start = 1;
	     int len = 1;
	     while(n > len*count){//确定区间
	         n -= len*count;
	         len++;
	         start *= 10;
	         count *= 10;
	     }
	     start += (n-1)/len;
	     return String.valueOf(start).charAt((n-1)%len)-'0';   
	 }
}
